package com.vrp3d.service;

import com.vrp3d.common.enums.CommonEnum;
import com.vrp3d.domain.model.UserContext;

import java.util.Date;

/**
 * 通用信息接口
 *
 * @author vrp3d
 */
public interface AbsService {

    /**
     * 获取用户信息
     *
     * @return
     */
    UserContext getUser();

    /**
     * 获取当前时间
     *
     * @return
     */
    Date getNowTime();

    /**
     * 获取正常状态的值
     *
     * @return
     */
    Integer getNormalStatus();

    /**
     * 获取删除状态的值
     *
     * @return
     */
    Integer getDeletedStatus();

    /**
     * 获取文件存放路径
     *
     * @return
     */
    String getFileStoragePath();

    /**
     * 获取文件删除存放路径
     *
     * @return
     */
    String getDeleteStoragePath();

    /**
     * 验证验证码是否能发送,1条/分钟,5条/小时,10条/天
     *
     * @param mobile
     * @param oneMinuteOneMessage
     * @param oneHourFiveMessage
     * @param oneDayTenMessage
     */
    void verifyPhoneVerificationCodeCanItBeSent(String mobile, CommonEnum oneMinuteOneMessage, CommonEnum oneHourFiveMessage, CommonEnum oneDayTenMessage);

    /**
     * 发送验证码后记录
     *
     * @param mobile
     * @param oneMinuteOneMessage
     * @param oneHourFiveMessage
     * @param oneDayTenMessage
     */
    void recordAfterSendingVerificationCode(String mobile, CommonEnum oneMinuteOneMessage, CommonEnum oneHourFiveMessage, CommonEnum oneDayTenMessage);

    /**
     * 获取用户选择哪国语言进行浏览
     *
     * @return
     */
    String chooseLanguage();
}
